home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / PROGTOOL / MBLIB10.ZIP;1 / CPPEXAMP.ZIP / MSGBASE.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1993-01-02  |  3.0 KB  |  227 lines

  1. #include    <string.h>
  2.  
  3. #include    "msgbase.hpp"
  4.  
  5. /*=========================================================================*/
  6.  
  7. MsgBase::MsgBase (void)
  8.  
  9. {
  10.     path[0] = '\0';
  11.     msg_open (path);
  12. }
  13.  
  14. MsgBase::MsgBase (char *_path)
  15.  
  16. {
  17.     strcpy (path, _path);
  18.     msg_open (path);
  19. }
  20.  
  21. MsgBase::~MsgBase (void)
  22.  
  23. {
  24.     msg_close ();
  25. }
  26.  
  27. // locking services
  28.  
  29. int     MsgBase::Lock (void)
  30.  
  31. {
  32.     return (msg_lock (path));
  33. }
  34.  
  35. int     MsgBase::Lock (char *_semapath)
  36.  
  37. {
  38.     return (msg_lock (_semapath));
  39. }
  40.  
  41. void    MsgBase::Unlock (void)
  42.  
  43. {
  44.     msg_unlock ();
  45. }
  46.  
  47.  
  48. //    manipulation services
  49.  
  50. long    MsgBase::MsgNr2RecNr (int msgnr)
  51.  
  52. {
  53.     return (msg_msgnr2recnr (msgnr));
  54. }
  55.  
  56. unsigned int    MsgBase::RecNr2MsgNr (long recnr)
  57.  
  58. {
  59.     return (msg_recnr2msgnr (recnr));
  60. }
  61.  
  62. //    read services
  63.  
  64. void    MsgBase::ReadInfo (void)
  65.  
  66. {
  67. }
  68.  
  69. int     MsgBase::ReadHdr (long recnr)
  70.  
  71. {
  72.     return (msg_read_hdr (recnr, &hdr));
  73. }
  74.  
  75. int     MsgBase::ReadIdx (long recnr)
  76.  
  77. {
  78.     return (msg_read_idx (recnr, &MsgIdx));
  79. }
  80.  
  81. int     MsgBase::ReadToIdx (long recnr)
  82.  
  83. {
  84.     return (msg_read_toidx (recnr, &MsgToIdx));
  85. }
  86.  
  87. M_TEXT    MsgBase::ReadText (void)
  88.  
  89. {
  90.     return (msg_read_text (&hdr));
  91. }
  92.  
  93. M_TEXT    MsgBase::ReadText (long recnr)
  94.  
  95. {
  96.     if (!msg_read_hdr (recnr, &hdr))
  97.         return (msg_read_text (&hdr));
  98.     else
  99.         return (NULL);
  100. }
  101.  
  102. //  write services
  103.  
  104. void    MsgBase::WriteInfo (void)
  105.  
  106. {
  107. }
  108.  
  109. int     MsgBase::WriteHdr (long recnr)
  110.  
  111. {
  112.     return (msg_write_hdr (recnr, &hdr));
  113. }
  114.  
  115. int     MsgBase::WriteIdx (long recnr)
  116.  
  117. {
  118.     return (msg_write_idx (recnr, &MsgIdx));
  119. }
  120.  
  121. int     MsgBase::WriteToIdx (long recnr)
  122.  
  123. {
  124.     return (msg_write_toidx (recnr, &MsgToIdx));
  125. }
  126.  
  127. int     MsgBase::WriteText (void)
  128.  
  129. {
  130.     return (msg_write_text (&hdr, txt));
  131. }
  132.  
  133. int     MsgBase::WriteText (long recnr)
  134.  
  135. {
  136.     int    result;
  137.  
  138.     result = msg_read_hdr (recnr, &hdr);
  139.     if (!result)
  140.         return (msg_write_text (&hdr, txt));
  141.     else
  142.         return (result);
  143. }
  144.  
  145. int     MsgBase::WriteNew (void)
  146.  
  147. {
  148.     hdr.board = board;
  149.     return (msg_write_new (&hdr, txt));
  150. }
  151.  
  152. int     MsgBase::Kill (long recnr)
  153.  
  154. {
  155.     return (msg_kill (recnr));
  156. }
  157.  
  158. //  search services
  159.  
  160. long    MsgBase::First (void)
  161.  
  162. {
  163.     return (msg_firstinboard (board));
  164. }
  165.  
  166. long    MsgBase::Next (void)
  167.  
  168. {
  169.     return (msg_nextinboard (board));
  170. }
  171.  
  172. long    MsgBase::Last (void)
  173.  
  174. {
  175.     return (msg_lastinboard (board));
  176. }
  177.  
  178. long    MsgBase::Prev (void)
  179.  
  180. {
  181.     return (msg_previnboard (board));
  182. }
  183.  
  184. long    MsgBase::FirstTo (MSGTOIDX_RECORD *_user)
  185.  
  186. {
  187.     long    recnr;
  188.  
  189.     recnr = msg_firstto (_user);
  190.     if (recnr > -1)
  191.         current = recnr;
  192.     return (recnr);
  193. }
  194.  
  195. long    MsgBase::NextTo (void)
  196.  
  197. {
  198.     long    recnr;
  199.  
  200.     recnr = msg_nextto (current);
  201.     if (recnr > -1)
  202.         current = recnr;
  203.     return (recnr);
  204. }
  205.  
  206. long    MsgBase::LastTo (MSGTOIDX_RECORD *_user)
  207.  
  208. {
  209.     long    recnr;
  210.  
  211.     recnr = msg_lastto (_user);
  212.     if (recnr > -1)
  213.         current = recnr;
  214.     return (recnr);
  215. }
  216.  
  217. long    MsgBase::PrevTo (void)
  218.  
  219. {
  220.     long    recnr;
  221.  
  222.     recnr = msg_prevto (current);
  223.     if (recnr > -1)
  224.         current = recnr;
  225.     return (recnr);
  226. }
  227.